/* -*- coding: utf-8; tab-width: 4 -*-
vim: ts=4 noet ai */

/**
	Hide Preferences for Firefox

	Copyright © 2016  Desktopd Project

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as
	published by the Free Software Foundation, either version 3 of the
	License, or (at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.

	@license GPL-3.0+
	@file
*/

'use strict';

const _$windows = require ('sdk/windows').browserWindows;
const {viewFor: _$viewFor} = require ('sdk/view/core');

exports.listen = callBack => {
	const $windows = _$windows;
	const $viewFor = _$viewFor;
	
	const handle = sdkWindow => {
		const window = $viewFor (sdkWindow);
		
		try {
			callBack (window);
		} catch (e) {
			console.exception (e);
		}
	};
	
	$windows.on ('open', handle);
	for (let sdkWindow of $windows) {
		handle (sdkWindow);
	}
};

exports.getWindows = () => {
	const $windows = _$windows;
	const $viewFor = _$viewFor;
	
	const results = [];
	for (let sdkWindow of $windows) {
		const window = $viewFor (sdkWindow);
		window && results.push (window);
	}
	
	return results;
};


